// pages/message/index.js
var $ = require('../../utils/ajax.js');
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [],
    status:0,
    tabs: ["未读", "已读"],
    activeIndex: 0,
    sliderOffset: 0,
    sliderLeft: 28,
    curPage:1,
    pageTotal: 0,
    unreadCount:0,
    loadData: { "loadMoreHidden": true, "loadingHidden": true, 'loadMoreText': app.data.defaultLoadMoreText },
    scroll: { "scrollTop": 0, "scrollHeight": 0 },
    debounce: null
  },
  //消息列表
  doPostData(_this) {
    _this.setData({
      ['loadData.loadingHidden']: true
    })
    wx.request({
      url: getApp().data.app_server + "/weixin/message/list",
      method: 'post',
      data: { 
        token:getApp().data.token,
        page: _this.data.curPage,
        limit: app.data.limit,
        status: _this.data.status//0未读 1已读 空值获取全部
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded' // 默认值
      },
      success: function (res) {
        let data = res.data.data;
        if (res.data.count > 0) {
          var pageTotal = Math.ceil(res.data.count / app.data.limit);
          let loadMoreHidden = false;
          if (_this.data.curPage == pageTotal){
            loadMoreHidden = true;
          }
          _this.setData({
            list: _this.data.list.concat(data),//列表拼接
            ['loadData.loadingHidden']: false,
            ['loadData.loadMoreText']: app.data.noLoadMoreText,
            ['loadData.loadMoreHidden']: loadMoreHidden,
            pageTotal: pageTotal
          })
          if (pageTotal == 1) {
            _this.setData({
              ['loadData.loadMoreText']: '已经到底部了',
              ['loadData.loadMoreHidden']: true
            })
          }
        }
      }
    })
  },
 //tab点击事件
  tabClick: function (e) {
    this.setData({
      sliderOffset: e.currentTarget.offsetLeft,
      activeIndex: e.currentTarget.id,
      status: e.currentTarget.id,
      list:[]
    });
    this.doPostData(this);
  },
  //标记已读
  markRead(e){
    $.post({
      url: getApp().data.app_server + '/weixin/message/mark',
      data: {
        id: e.target.id,
        token: app.data.token,
        status:1
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded' // 默认值
      },
    }).then((res) => {
      if (res.data.code == 200){

        this.setData({
          list:[],
          status:0
        })
        wx.showToast({
          title: '标记成功',
          icon: 'success',
          duration: 3000
        });
        this.doPostData(this);
        this.getUnreadMsgCount(this,app.data.token);
      }
    }).catch((err) => {
      console.log(err);
    });
  },
  //未读信息条数
  getUnreadMsgCount(_this, token) {
    wx.request({
      url: app.data.app_server + "/weixin/message/count",
      method: 'post',
      data: { token: token, status: 0 },//0未读 1已读 空值获取全部
      header: {
        'content-type': 'application/x-www-form-urlencoded' // 默认值
      },
      success: function (res) {
        app.data.unreadMsgCount = res.data
        _this.setData({
          unreadCount: res.data
        })
      }
    })
  },
 
  // 加载下一页数据
  bindDownLoad: function () {
    var _this = this;
    let debounce = this.data.timeout;
    if (debounce) clearTimeout(debounce);
    let curPage = _this.data.curPage + 1;
    // 防抖函数
    debounce = setTimeout(function () {
      //判断是否是最后一页，最后一页不加载数据了
      if (_this.data.pageTotal < curPage) {
        _this.setData({
          ['loadData.loadMoreText']: app.data.noLoadMoreText,
          ['loadData.loadMoreHidden']: true
        })
      } else {
        _this.setData({
          curPage: curPage,
          ['loadData.loadMoreHidden']: false
        })
        _this.doPostData(_this);
      }
    }, 500);
    _this.setData({
      debounce: debounce
    })
  },
  scroll: function (event) {
    //该方法绑定了页面滚动时的事件，我这里记录了当前的position.y的值,为了请求数据之后把页面定位到这里来。
    this.setData({
      ['scroll.scrollTop']: event.detail.scrollTop
    });
  },
 /* refresh: function (event) {
    //该方法绑定了页面滑动到顶部的事件，然后做上拉刷新
    var _this = this;
    _this.setData({
      list: [],
      ['scroll.scrollTop']: 0,
      ['params.page']: 1
    });
    //_this.doPostData(_this, _this.data.params);
  },*/

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this;
    that.doPostData(that);
    //这里要非常注意，微信的scroll-view必须要设置高度才能监听滚动事件，所以，需要在页面的onLoad事件中给scroll-view的高度赋值
    wx.getSystemInfo({
      success: function (res) {
        console.info(res.windowHeight);
        that.setData({
          ['scroll.scrollHeight']: res.windowHeight -40,
          unreadCount: app.data.unreadMsgCount
        });
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})